package com.yifei.service.auth;

import com.yifei.model.dto.auth.CaptchaResult;
import com.yifei.model.dto.auth.LoginResult;
import com.yifei.model.enums.ResultCode;

/**
 * @Description: 权限接口
 * @Author: yiFei
 * @date: 2023/9/22 19:45
 */
public interface AuthService {
    /**
     * 获取验证码
     *
     * @return 返回验证码
     */
    CaptchaResult getCaptcha();

    /**
     * 登录
     *
     * @param username 用户名
     * @param password 密码
     * @return
     */
    LoginResult login(String username, String password);

    /**
     * 退出登录
     */
    void logout();

    /**
     * 刷新 Token
     *
     * @param token        已经过期的Token
     * @param refreshToken 未过期用于刷新的Token
     * @return
     */
    LoginResult refreshToken(String token, String refreshToken);

    /**
     * @param verifyCode    请求中的验证码
     * @param verifyCodeKey 缓存中的验证码
     * @return 返回校验错误码
     */
    ResultCode checkCaptcha(String verifyCode, String verifyCodeKey);
}
